package cn.fl.insurance.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.insurance.dto.InsTypInfoDTO;
import cn.fl.insurance.vo.InsTypInfoVO;

/**
 * @Description: 保险种类基础表 转换器
 * VO是客户端传递数据到服务端进行转换的数据
 * VO转换数据变成DTO传递到服务端
 * VO不能在服务端出现
 */
public class InsTypInfoVOTransform {


    /**
     * DTO 转  VO
     *
     * @param dto InsTypInfoDTO
     * @return InsTypInfoVO
     */
    public static InsTypInfoVO toVO(InsTypInfoDTO dto) {
        InsTypInfoVO vo = null;
        if (dto != null) {
            vo = new InsTypInfoVO();
            vo.setId(dto.getId());
            vo.setTypNm(dto.getTypNm());//险种名称
            vo.setTypNo(dto.getTypNo());//险种标示
            vo.setTypRate(dto.getTypRate());//险种费率
            vo.setTypClsCd(dto.getTypClsCd());//险种类型 :  1必保险种、0可选险种
            vo.setInsTypCd(dto.getInsTypCd());//保险种类：商业险 、交强险、财产险、承运险
            vo.setTypRem(dto.getTypRem());//备注
            vo.setIsValid(dto.getIsValid());//是否有效（1：是，0：否）
            vo.setIsDel(dto.getIsDel());//是否删除（1：是，0：否）

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人

            vo.setInsTypCdNm(dto.getInsTypCdNm());//保险种类 XX
            vo.setTypClsCdNm(dto.getTypClsCdNm());//保险类型：必选 可选
            vo.setIsDefVi(dto.getIsDefVi());//是否默认显示
            vo.setTypLvl(dto.getTypLvl());//险种层级
            vo.setTypPid(dto.getTypPid());//父险种ID
            vo.setTypPidNm(dto.getTypPidNm());//父险种名称
            vo.setIsSysDef(dto.getIsSysDef());//是否系统内置
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo InsTypInfoVO
     * @return InsTypInfoDTO
     */
    public static InsTypInfoDTO toDTO(InsTypInfoVO vo) {
        InsTypInfoDTO dto = null;
        if (vo != null) {
            dto = new InsTypInfoDTO();
            dto.setId(vo.getId());
            dto.setTypNm(vo.getTypNm());//险种名称
            dto.setTypNo(vo.getTypNo());//险种标示
            dto.setTypRate(vo.getTypRate());//险种费率
            dto.setTypClsCd(vo.getTypClsCd());//险种类型 :  1必保险种、0可选险种
            dto.setInsTypCd(vo.getInsTypCd());//保险种类：商业险 、交强险、财产险、承运险
            dto.setTypRem(vo.getTypRem());//备注
            dto.setIsValid(vo.getIsValid());//是否有效（1：是，0：否）
            dto.setIsDel(vo.getIsDel());//是否删除（1：是，0：否）

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
            dto.setIsDefVi(vo.getIsDefVi());//是否默认显示

            dto.setTypLvl(vo.getTypLvl());//保险层级
            dto.setTypPid(vo.getTypPid());//保险大类
            dto.setIsSysDef(vo.getIsSysDef());//是否系统内置
        }
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list List<InsTypInfo>
     * @return List<InsTypInfoDTO>
     */
    public static List<InsTypInfoVO> toVOList(List<InsTypInfoDTO> list) {
        List<InsTypInfoVO> voList = new ArrayList<InsTypInfoVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (InsTypInfoDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }
}
